<li>Talks to syslogd in a limited way; all requests are logged, whether they are honoured or not. This allows decent tracing.
<br>
<li>Access and debug logs to help with the above logging...
<br>
<li>Variable search path; this is set in the !Run file so you can easily alter it to point at your web pages.
<br>
<li>URL translator and converter: The becoming-standard translation method of translating all . to / and vice-versa, so you can have extensions on filenames. Further ideas involve taking the extension from a lookup table based on the filetype, but this has not been completed yet.
<br>
<li>Simplistic interface for <i>cgi-bin</i> type programs. The server does not support the CGI protocol as I dont really know what that <b>is</b><br>It <b>does</b> however, allow you to execute programs in reponse to http requests.
<p>
The server sets a system variable, <code>HTTPD$TempDir</code>, which is used in conjuntion with the parameter to the program, to create the name of a file to store the output of the script in. Also available are <code>HTTPD$CGI_PARAMS_</code><i>X</i> : the parameter list from the URL, <code>HTTPD$REMOTE_HOST_</code><i>X</i> : hostname of the requester (where <i>X</i> is the parameter passed to the program) and <code>HTTPD$EXEC_TIME</code> which is the time the request was initated.
<br>
<li>Simultaneous connections (max 6 in this version) This has now been tested with <i>Netscape 1.1N</i>, and a few small problems ironed out.
<br>
<li>Optional status window and iconbar gadgets to allow monitoring of http requests: This is chosen via a variable in the !Run file as when your pages are properly set up, you probably wont want the monitor on!
<br>
<li>Some sort of redirection for HTTP/1.0 now implemented. So you can point at directories (eg http://riscy/~ian ) and it will return a 302 page which can be automatically picked up by a HTTP/1.0 compatible browser which will send another request for the correct page!
</ul>
<hr>
<h2>Installation</h2>
<ul>
<li>Edit the !httpd.!Run file: Set/modify the following variables:
<pre>
HttpdBase$Dir Location of your web-pages to serve out.
HttpdLog$File Access log file location (set to null: for no log)
HttpdLog$Debug Debug log file location (set to null: for no log)
Httpd$TempDir Location of a safe temporary directory for output passing.
Httpd$Desktop Yes / No depending whether you want the monitor or not</pre>
<li>Run !httpd after running !FreeNet
<li>Check it out: http://localhost/
<li>Write your own web pages!!!
</ul>
<hr>
<h2>Currently-known Bugs/Omissions</h2>
<ul>
<li>Only respnds properly to GET methods.
<li>No MIME support
<li>No strict HTTP/1.0 or HTTP/0.9 conformance !!
<li>Works nicely with Acorn !Internet, but crashes a bit with FreeNet (0.19) because there is a known but in ALL versions of FreeNet I've been able to get hold of (crashes when closing a socket!) ... this is the same bug that causes ftp sessions and telnet sessions to explode when they quit!